package com.whfc.fuum.dao;

import com.whfc.fuum.dto.open.OpenApiLicenseDTO;
import com.whfc.fuum.entity.OpenApiLicense;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface OpenApiLicenseMapper {
    int deleteByPrimaryKey(Integer id);

    OpenApiLicense selectByPrimaryKey(Integer id);

    int insertSelective(OpenApiLicense record);

    int updateByPrimaryKeySelective(OpenApiLicense record);

    /**
     * 根据appKey查询
     *
     * @param appKey
     * @return
     */
    OpenApiLicense selectByAppKey(@Param("appKey") String appKey);

    /**
     * 根据deptId查询
     *
     * @param deptId 组织机构ID
     * @return 授权信息
     */
    OpenApiLicense selectByDeptId(@Param("deptId") Integer deptId);

    /**
     * 根据deptId查询
     *
     * @param deptId 组织机构ID
     * @return 授权信息
     */
    List<OpenApiLicenseDTO> selectLicenseByDeptId(@Param("deptId") Integer deptId);

    /**
     * 启用
     *
     * @param appKey
     * @return
     */
    int enableByAppKey(@Param("appKey") String appKey);

    /**
     * 禁用
     *
     * @param appKey
     * @return
     */
    int disableByAppKey(@Param("appKey") String appKey);

    /**
     * 查询所有授权信息
     *
     * @param keyword
     * @return
     */
    List<OpenApiLicenseDTO> selectOpenApiLicenseDTOList(@Param("keyword") String keyword);

    /**
     * 查找授权情况
     *
     * @param appKey    账号
     * @param appSecret 密码
     * @return 授权情况
     */
    OpenApiLicense selectLicense(@Param("appKey") String appKey,
                                 @Param("appSecret") String appSecret);

    /**
     * 根据组织机构查询appKey
     *
     * @param deptId 组织机构ID
     * @return appKey
     */
    List<String> selectAppKeyByDeptId(@Param("deptId") Integer deptId);

    /**
     * 删除当前组织机构的license
     *
     * @param deptId 组织机构ID
     */
    void logicDelByDeptId(@Param("deptId") Integer deptId);
}